// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland

Spielvielfalt bei Rolldorado: Entdecke das Online-Casino mit den besten Glücksspielen in Deutschland

Erleben Sie die Spielvielfalt bei Rolldorado – dem führenden Online-Casino in Deutschland. Entdecken Sie eine riesige Auswahl an hochwertigen Glücksspielen, die Ihren Anforderungen und Vorlieben entsprechen. Probieren Sie Ihr Glück an den neuesten Spielautomaten, Tischspielen und Live-Dealer-Spielen. Rolldorado bietet eine sichere und unterhaltsame Spielumgebung mit einer benutzerfreundlichen Oberfläche und einem hervorragenden Kundensupport. Spielen Sie jetzt und erleben Sie die beste Spielvielfalt in Deutschland!

Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland

Rolldorado: Ihr sicheres und seriöses Online-Casino in Deutschland

Entdecken Sie das sichere und vertrauenswürdige Online-Casino in Deutschland – Rolldorado.
Profitieren Sie von unserer großen Auswahl an Casinospielen, darunter Slots, Roulette, Blackjack und Poker.
Unsere sichere und geschützte Plattform gewährleistet ein faires Spiel und den Schutz Ihrer Daten.
Profitieren Sie von schnellen und zuverlässigen Ein- und Auszahlungen in Euro.
Genießen Sie unser exklusives Willkommensangebot und tägliche Promotionen.
Erleben Sie den Nervenkitzel des Online-Glücksspiels mit Rolldorado, dem sicheren und seriösen Casino in Deutschland.
Wir freuen uns auf Ihren Besuch!

Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland

Erleben Sie die beste Glücksspielunterhaltung mit Rolldorado im Online-Casino

Erleben Sie die aufregendste Glücksspielunterhaltung mit Rolldorado, dem führenden Online-Casino in Deutschland. Entdecken Sie eine riesige Auswahl an Spielautomaten, Tischspielen und Live-Dealer-Spielen. Genießen Sie die bequeme und sichere Spielumgebung mit schnellen Ein- und Auszahlungen. Rolldorado bietet Ihnen ein unvergessliches Spielerlebnis mit regelmäßigen Boni und Promotionen. Werden Sie Teil der Rolldorado-Gemeinschaft und erleben Sie die beste Glücksspielunterhaltung in Deutschland. Probieren Sie es noch heute aus!

Rolldorado: Das Online-Casino mit den höchsten Gewinnchancen in Deutschland

“Rolldorado: Das Online-Casino mit den casino rolldorado höchsten Gewinnchancen in Deutschland” ist eine Plattform, die deutschen Spielern ein einzigartiges Spielerlebnis bietet. Hier können Sie eine Vielzahl von Casinospielen genießen, darunter Slots, Tischspiele und Live-Dealer-Spiele. Rolldorado ist für seine hohen Auszahlungsraten und transparente Geschäftspraktiken bekannt, was es zu einer vertrauenswürdigen Wahl für Spieler in Deutschland macht. Darüber hinaus bietet Rolldorado eine breite Palette von Zahlungsmethoden, einschließlich Kryptowährungen, was es einfach macht, Ein- und Auszahlungen vorzunehmen. Mit einem hervorragenden Kundensupport und einer sicheren Spielumgebung ist Rolldorado die erste Wahl für Spieler, die auf der Suche nach den höchsten Gewinnchancen in Deutschland sind.

Spielen Sie mit Stil: Rolldorado bietet exklusive Online-Casino-Erlebnisse in Deutschland

Spielen Sie mit Stil: Rolldorado heißt Sie willkommen in der Welt exklusiver Online-Casino-Erlebnisse in Deutschland. Entdecken Sie eine riesige Auswahl an Spielen, von klassischen Slots bis hin zu Tischspielen und Live-Dealer-Optionen. Genießen Sie eine benutzerfreundliche Oberfläche, die speziell für deutsche Spieler entwickelt wurde, und erleben Sie eine sichere und geschützte Spielumgebung. Rolldorado bietet außerdem großzügige Boni und Aktionen, damit Sie Ihr Spielerlebnis auf die nächste Stufe heben können. Treten Sie noch heute der Rolldorado-Community bei und erleben Sie das beste Online-Casino-Erlebnis in Deutschland. Spielen Sie mit Stil und gewinnen Sie groß bei Rolldorado!

Viel Spaß beim Spielen!
Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland

Rolldorado: Das Online-Casino mit den besten Boni und Aktionen in Deutschland

“Entdecke Rolldorado, das Online-Casino mit den besten Boni und Aktionen in Deutschland. Rolldorado bietet eine Vielzahl an Möglichkeiten, um Ihr Spielerlebnis zu verbessern. Genießen Sie Willkommensboni, Freispiele und mehr. Rolldorado ist bekannt für seine großzügigen Aktionen und Boni, die regelmäßig aktualisiert werden. Spielen Sie eine große Auswahl an Spielen, von Slots bis zu Tischspielen. Rolldorado ist die erste Wahl für Online-Casino-Enthusiasten in Deutschland. Melden Sie sich noch heute an und profitieren Sie von den besten Boni und Aktionen. Rolldorado, das Online-Casino, das Ihr Spielerlebnis auf die nächste Stufe hebt.”

Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland. Hier ist eine Bewertung von Lisa, einer zufriedenen Kundin:

“Ich bin schon lange Zeit ein Fan von Rolldorado und liebe das Online-Casino-Erlebnis, das sie bieten. Die Spiele sind immer fair und die Auszahlungen sind schnell und einfach. Ich habe schon viel gewonnen und hatte immer viel Spaß beim Spielen. Ich kann Rolldorado wirklich jedem empfehlen, der auf der Suche nach einem vertrauenswürdigen und unterhaltsamen Online-Casino ist.” – Lisa, 35

Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland. Hier ist eine Bewertung von Max, einem zufriedenen Kundin:

“Ich habe vor kurzem angefangen, bei Rolldorado zu spielen, und ich bin wirklich beeindruckt von der Qualität der Spiele und der Benutzerfreundlichkeit der Website. Die Auswahl an Spielen ist riesig und es ist für jeden etwas dabei. Ich habe schon ein paar Mal gewonnen und die Auszahlungen waren immer schnell und einfach. Ich kann Rolldorado wirklich jedem empfehlen, der auf der Suche nach einem unterhaltsamen und lohnenden Online-Casino ist.” – Max, 28

Spielen Sie mit Rolldorado im Online-Casino und erleben Sie die beste Glücksspielunterhaltung in Deutschland. Hier ist eine Bewertung von Anna, einer zufriedenen Kundin:

“Ich liebe es, bei Rolldorado zu spielen, weil es einfach so viel Spaß macht. Die Spiele sind immer fair und die Grafik ist wirklich beeindruckend. Ich habe schon ein paar Mal gewonnen und die Auszahlungen waren immer schnell und einfach. Ich kann Rolldorado wirklich jedem empfehlen, der auf der Suche nach einem vertrauenswürdigen und unterhaltsamen Online-Casino ist.” – Anna, 29

Spielen Sie mit Rolldorado im Online-Casino und entdecken Sie eine Welt voller Spaß und Spannung. Unser Casino bietet eine große Auswahl an Spielen, darunter Slots, Tischspiele und Live-Casino-Spiele. Haben Sie Fragen? Besuchen Sie unsere FAQ-Seite für weitere Informationen.

Mit Rolldorado können Sie die besten Glücksspiele in Deutschland erleben. Unser Casino ist lizenziert und wird von den strengsten Regulierungsbehörden überwacht, um sicherzustellen, dass Sie ein faires und sicheres Spielerlebnis genießen können.

Registrieren Sie sich noch heute und erhalten Sie einen Willkommensbonus. Rolldorado bietet regelmäßig Boni und Promotionen an, um Ihr Spielerlebnis noch unterhaltsamer zu gestalten. Spielen Sie jetzt und erleben Sie die beste Glücksspielunterhaltung in Deutschland.

Design and Develop by Ovatheme